iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0

在第一個章節提到:Genero FGL中若用到了交談指令,則必須要有一個客戶端來進行畫面的處理與呈現。最簡單常用的工具就是 GDC(Genero Desktop Client)。怎麼把 GDC 玩得好,玩的巧,會比較重要。

版本與安裝

這個段落係以鼎新 TIPTOPGP/T100 系列ERP運用的方案為主

GDC主要必須搭配FGL套件的主版本,所以若您的 FGL 套件為2.2系列的,下載3.2X GDC是無法連結的。查看FGL版本可使用『FGLRUN -V』指令,以下列出系列現行最後更新版號,若非為最後版本,可考慮更新。

  • Genero 2.2系列 最終版本 2.20.06
  • Genero 2.3系列 最終版本 2.32.44
  • Genero 2.4系列 最終版本 2.41.10
  • Genero 2.5系列 最終版本 2.50.39
  • Genero 3.2系列 最終版本 3.20.18 (此版持續更新中)

安裝設定

GDC 從 3.X 系列起,安裝過程中除路徑與授權詢問外,最重要的是詢問是否授予安裝路徑的寫入權,這是為了符合OS層的規範而設計的,勾選後未來才可讓 autoupdate 生效,未勾選時後續仍可啟動,但會無法完成 autoupdate (需要手工另外壓權限)
https://ithelp.ithome.com.tw/upload/images/20210917/200511696f6hJm927b.png

安裝完成後,建議在 Windows端給予『系統管理者』身分執行作業
https://ithelp.ithome.com.tw/upload/images/20210917/20051169WOX59ak5L3.png

系統管理者與前一個『授予寫入權』是不同的事情,所以兩者不可只挑其一。系統管理者是在運行過程中,若使用新PORT建立連線時不會遭到異常終止,故建議啟用

此外我們可對執行參數進行一些修改後在作啟動GDC

捷徑的執行目標  "gdc.exe" -aD -A 0

參數說明

  1. -aD 開啟 a: admin D:Debug 模式,可展開 admin 設定頁簽與 Debug 操作頁簽
  2. -A 0 調降安全管理權限。調整為 0 表示允許來自非本身的啟動需求,此處不調整時,預設為 2 ,表示必須透過 GDC 本身的 shortcut 捷徑系統登入服務器(server)再回來的才視為安全可連線。 )
    T系列會由server端進行作業推送,因此此處必須調降為 0 以增快開啟速度
    (GDC的安全分級設置,更詳細的可參考 https://4js.com/ask-reuben/ig-90/ )

GDC 在2.50版本前有額外推出 ActiveX 版本,支持 ie 觸發下載功能。隨著微軟正式宣告停止支援 ActiveX,GDC從 3.00起停止發行 ActiveX 版本

訊息傳遞與渲染

我們將第一篇的 FGLRUN與GDC關係圖在做深化一些講解:
https://ithelp.ithome.com.tw/upload/images/20210916/200511694wYjYhLMhj.png

程式利用FGLRUN 工具執行起來時,就已經會在主機的記憶體中呈現一棵程式樹。但因為沒有畫面檔的需求,或是還不需要與用戶交談,這個XML結構 (樹) 不會送出。直到執行『交談指令』才會送出。
(交談指令為:MENU/INPUT/DISPLAY ARRAY/CONSTRUCT/PROMPT/DIALOG等)

當踩到交談指令後,即會將此 XML結構送出;之後,再傳送『有異動的部分』回到服務器。
(所以,當畫面啟動當下,傳輸量會有個小高峰,接下來傳輸量會降低。)

AUI TREE: 傳遞用的 Streaming XML

我們可以從 GDC端,透過 Ctrl-滑鼠右鍵,在執行出來的應用程式空白處點擊,就可以把XML結構呈現出來
https://ithelp.ithome.com.tw/upload/images/20210917/20051169lQN1etJoFq.png

透過AUI TREE可以看甚麼?當然是看畫面上的結構、元件、甚至是資源檔讀進來的內容,是否滿足原先構想的需求。
舉例來說:現在畫面上 lbl_gzza001 到底翻譯資料讀進來是啥?COMBOBOX下拉式選單裡面是否已經有選項?等。這些都可以透過從AUITREE的資料來確認想處理的是否已送到GDC。

渲染:Native Randering(原生渲染) 與 Universal Randering(通用渲染)

將 XML 轉化為實體的外顯視窗、表單、元件的方式,即為渲染的意思。GDC原始透過 QT 的工具協助繪製各種對應於 OS 的視窗及控件(widget),這就是 Native Randering

現今許多桌面應用作業,都想相容於瀏覽器、或跨移動端執行,且個性化、客製化程度高。傳統式的點擊操控在瀏覽器介面早已被多樣的控件取代。因此後續將會修改為以 Universal Randering為主,逐步停止對 Native Randering 的支持。

GDC作為一個承載渲染引擎的工具,從GDC 3.00開始,支援 Native 與 Universal 並存。
**於 GDC 4.00板起,取消 Native Randering 的支援 **

兩種渲染方式,其實影響的不是程式碼(4GL & PER/4FD),而是相對位置。因此,相關程式功能大多不會因為調整渲染方式而發生異動,需要檢視的是畫面元件,會不會因為相對位置的些微出入,造成排版上閱讀不習慣。這是需要花力氣在作核對的。

注:因應網路特性:瀏覽器基底不會支援直接讓 Code 透通 OS 的底層,所以同時被關閉的功能還有 frontCALL 部分,此部分調整成因與『渲染引擎』無關,不可混為一談。

GDC 啟動與問題排除

https://ithelp.ithome.com.tw/upload/images/20210917/20051169ipCV2m3Aib.png

啟動後若沒有調整啟動通訊埠,預設為 6400,重複啟動GDC (不同版本) 時,會疊加到 6401..之後

若啟動 port變更,則主機上 FGL 所需要的環境變數也需要對應修改,如 export FGLSERVER=X.X.X.X:1
:1 指的就是在 6400 + 1 = 6401 (依此類推)

設定

https://ithelp.ithome.com.tw/upload/images/20210917/2005116973T6XTFnCm.png

設定頁簽上有些功能可作為運用

  • 偏好:可設定字型大小,請特別注意此處影響的是字形的基底,也就是當畫面解析度高的時候,才需要作字形的放大,其餘狀況不需要。另外中文字型,若有設定資源檔時,則此處會被應用程式覆蓋 (如 T系列產品)
    GDC 3.X系列下方會有『通用呈現』的開關,此開關開啟後會改為使用 Universal Randering
  • 進階:此處有『清除』功能。GDC會將畫面的屬性寫入 windows Registry 檔案。從而影響下一次開啟。若需要清除這些設定可從此頁簽進行清除。
  • 連結:主要就是 ping 值的設定,若網路狀況不佳時,建議可設定 FGL 參數值的80% (就是要回頭看FGL配置啦,要搭配上的)
  • 安全性:啟動時的參數 -A X 主要影響此頁簽的設定
  • 報表:若採用 GRE 進行列印時,可透過此處指定直接送印的印表裝置

除錯/調試

https://ithelp.ithome.com.tw/upload/images/20210917/20051169tAmDFhuBFX.png
操作遇到問題,最麻煩的就是無法理解用戶當下遇到甚麼問題。所以可以透過上述『交紀錄檔』的方法,請用戶作一下操作過程的錄製。錄製出來的檔案提交到 MIS 或開發端,可以利用『重播』功能,觀看整個操作紀錄。可能是資料缺漏,或是真正遇到問題,都可以從此處看出來。

例如上方曾經提到的 AUI TREE,如果想要理解『如何被異動』,就可以點開立即查看的小視窗。此處會將收到的封包內容完整的呈現過來,此時可以觀察到底是缺少設定資料,或是發生異常的段落。
https://ithelp.ithome.com.tw/upload/images/20210917/20051169T4pwPlqCrw.png

** 從 FGL端也可查看,需要使用『export FGLGUIDEBUG=1』啟動監測功能,與GDC相互比對

此方法通常可觀測到的是網路問題,例如已經觸發功能了,但 server沒傳遞過來 (可能防火牆有開,或 roter不通之類的問題)

連線捷徑設定

回到第一個頁簽中,曾經看過捷徑的設定。基本上建議可善用此連線設定,只要將 GAS 套件提供的連線 URL 配置過來,透過點擊就可以直接開啟作業進行操作。省去了透過瀏覽器啟動的動作。
https://ithelp.ithome.com.tw/upload/images/20210917/200511691kW1pJvSwg.png

下一步
https://ithelp.ithome.com.tw/upload/images/20210917/20051169cCSL0BP6et.png

從 GDC 3.20 版本起,該捷徑配置還可支援『拖拉方式』,直接拖曳到桌面匯出,或拖拉到 GDC 進行匯入。此舉可方便分享操作捷徑,對推廣系統初期,甚為便利。

GDC可運用的配置項目還有許多,但仍受到 OS 與第三方搭配軟體 (如 QT) 的版本牽制,以致於許多設定或異常並沒有辦法及時修復。期望後續在調整為 Universal Randering 之後,能趨向於即知即改,避免用戶作過多的替代方案。


上一篇
[FGL] 服務簡單收 - IMPORT 3 利用http與XML套件取 Web資源
下一篇
[FGL] 再探資料庫 - 使用 fgldbsch 工具
系列文
Genero Packages - 可接替4GL的LowCode商業語言32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言